package com.ynet.middleground.approve.bean;

import java.util.Date;
import java.util.List;

import javax.validation.constraints.NotBlank;

import com.ynet.core.common.BaseReqObjPager;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @author liwq
 * @description 分页查询任务列表请求类
 * @date 2021-03-17 11:13
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "分页查询任务列表请求类(移动端专用)，用于查询待处理任务列表、已处理任务列表", description = "分页查询任务列表请求类(移动端专用)，用于查询待处理任务列表、已处理任务列表")
public class QueryTaskForMobileReqPager extends BaseReqObjPager {

    private static final long serialVersionUID = 2658702120885370235L;

    @ApiModelProperty(value = "查询渠道", notes = "查询渠道", dataType = "String")
    private String queryChannel;

    @ApiModelProperty(value = "处理人", notes = "处理人", dataType = "String", required = true)
    @NotBlank(message = "任务处理人不能为空")
    private String assignee;

    @ApiModelProperty(value = "候选用户组集合", notes = "候选用户组集合", dataType = "java.util.List")
    private List<String> candidateGroups;

    @ApiModelProperty(value = "查询任务类型 0未完成、1完结、2已批", notes = "查询任务类型 0未完成、1完结、2已批", dataType = "int", required = true,
        allowableValues = "0,1,2")
    private int type;

    @ApiModelProperty(value = "开始查询日期", notes = "开始查询日期", dataType = "java.util.Date")
    private Date beginDate;

    @ApiModelProperty(value = "结束查询日期", notes = "结束查询日期", dataType = "java.util.Date")
    private Date endDate;

    @ApiModelProperty(value = "机构id，指用户所属机构公司\n一般需要填写该字段，用于区分用户跨多个机构", notes = "机构id", dataType = "Integer")
    private Integer organId;

    @ApiModelProperty(value = "模糊查询条件(发起人所属公司名称/产品名称/流程名称/流程发起人姓名)", notes = "模糊查询条件(发起人所属公司名称/产品名称/流程名称/流程发起人姓名)",
        dataType = "String")
    private String condition;

    @ApiModelProperty(value = "日期排序方式；0: 降序；1: 升序；默认：0", notes = "日期排序方式；0: 降序；1: 升序；默认：0", dataType = "String")
    private Integer dateOrder = 0;

    @ApiModelProperty(value = "业态公司ID", notes = "业态公司ID", dataType = "String")
    private String format;

}
